TreeGridLoaded ({ /* JSONP header, to be possible to load from xxx_Jsonp data source */ 
   "Cfg" : { "id": "Resources", "SuppressCfg": "1"   },  // Base settings, suppresses saving configuration to cookies 
   "Cfg_2" : { "GanttResourcesMaster": "Gantt"   },  // The id of the source grid is 'Gantt' 
   "Cfg_3" : { "GanttResourcesName": "N"   },  // The resource Name is shown in column 'N' 
   "Cfg_4" : { "GanttResourcesPrice": "U"   },  // The resource Price is shown in column 'U' 
   "Cfg_5" : { "GanttResourcesAvailability": "A"   },  // The resource Availability is shown in column 'A' 
   "Cfg_6" : { "GanttResourcesType": "T"   },  // The resource Type is shown in column 'U' 
   "Cfg_7" : { "IdNames": "N", "AppendId": "1"   },  // Controls creating name of newly added resources 
   "Cfg_8" : { "NumberId": "1", "IdChars": "0123456789"   },  // Controls generating of indexes appended to the new resource names 
   "Cfg_9" : { "Undo": "1"   },  // Permits undo / redo changes by Ctrl+Z / Ctrl + Y 
   "Cfg_10" : { "Dragging": "0", "Copying": "0"   },  // These actions are not required in the plain resources chart 
   "Cfg_11" : { "NoVScroll": "1"   },  // Does not scroll grid vertically 
   "Cfg_12" : { "Style": "TS", "GanttStyle": "GS"   },  // Presets Standard CSS style
   "Cfg_13" : { "LimitScroll": "7", "MinBodyRows": "6", "MinLeftWidth": "200", "MinMidWidth": "200", "MinRightWidth": "400"   },   // Responsive design, for small windows sets NoVScroll and NoHScroll 
   "Cfg_14" : { "SyncLanguage": "0"   },  // Do not synchronize language with the hidden source grid 
   "Actions" : { "OnClickButtonAdd": "AddRowEnd"   },  // Always adds new resources to the end of grid 
   "Def" : [ 
      { "Name": "R", "N": "Resource"   },  // Default name for newly added resources 
      { "Name": "R", "CalcOrder": "P,S,C", "Height": "105"   }   // Order of calculating columns, because their formulas depend on each other 
   ], 
   "LeftCols" : [ 
      { "Name": "N", "Width": "95", "Type": "Text"   }   // Resource name column 
   ], 
   "Cols" : [ 
      { "Name": "T", "Type": "Enum", "Enum": "|wrk|mat", "EnumKeys": "|1|2"   }, 
      { "Name": "U", "Type": "Float", "Format": "0.00", "EditMask": "^\\d*[\\d\\.\\,]?\\d*$"   }, 
      { "Name": "A", "Type": "Text", "Button": "Dates", 
         "DatesRepeatType": "Enum", "DatesRepeatEnum": "||Weekly|Daily", "DatesRepeatEnumKeys": "||w|d", "DatesRepeatWidth": "80", 
         "DatesValueType": "Enum", "DatesValueEnum": "|-10|-9|-8|-7|-6|-5|-4|-3|-2|-1|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25", "DatesValueCaption": "Count", "DatesValueWidth": "70"   }, 
      { "Name": "P", "Type": "Float", "Format": "0.##", "Formula": "Row.Deleted ? '' : ganttresourcepeak(N)"   }, 
      { "Name": "S", "Type": "Float", "Format": "0.00", "Formula": "Row.Deleted ? '' : ganttresourceunits(N)"   }, 
      { "Name": "C", "Type": "Float", "Format": "0.00", "Formula": "U*S"   }  
   ], 
   "RightCols" : [ 
      // Gantt chart Resources column 
      { "Name": "G", "Type": "Gantt", "MenuName": "Gantt chart"   },  // Basic setting, type and name in columns menu 
      { "Name": "G", "GanttAvailability": "N#3,N#1,N#8", "GanttAvailabilityFormat": "0.#"   }  
   ], 
   "Solid" : [ 
      { "Kind":"Toolbar", "Cells05": "Title,Use,Avail,Free,Err,Sep,Formula", "CanFocus": "0", 
         "TitleType": "Html", "Title": "Resource charts:", "TitleCanFocus": "0", "TitleWidth": "-1", "TitleWrap": "0", 
         "UseType": "Bool", "UseNoColor": "1", "UseCanEdit": "1", "UseLeft": "2", "UseCanFocus": "0", 
         "UseLabelRight": "Used", "Use": "1", 
         "UseOnChange": ["",
            "Grid.Cols.G.GanttAvailability = (Row.Avail?\",N#3\":\"\") + (Row.Use?\",N#1\":\"\") + (Row.Use&&Row.Avail?\",N#8\":\"\") + (Row.Free?\",N#5\":\"\") + (Row.Err?\",N#6\":\"\");",
            "if(!Row.Avail&&!Row.Free&&!Row.Err) { ",
               "var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();",
               "for(var i=0;i<F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); ",
               "Grid.EndUpdate();",
               "}",
            "else Grid.RefreshGantt();",
            ""], 
         "AvailType": "Bool", "AvailNoColor": "1", "AvailCanEdit": "1", "AvailLeft": "2", "AvailCanFocus": "0", 
         "AvailLabelRight": "Available", "Avail": "1", 
         "AvailOnChange": ["",
            "Grid.Cols.G.GanttAvailability = (Row.Avail?\",N#3\":\"\") + (Row.Use?\",N#1\":\"\") + (Row.Use&&Row.Avail?\",N#8\":\"\") + (Row.Free?\",N#5\":\"\") + (Row.Err?\",N#6\":\"\");",
            "if(!Row.Use&&!Row.Free&&!Row.Err) { ",
               "var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();",
               "for(var i=0;i<F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); ",
               "Grid.EndUpdate();",
               "}",
            "else Grid.RefreshGantt();",
            ""], 
         "FreeType": "Bool", "FreeNoColor": "1", "FreeCanEdit": "1", "FreeLeft": "2", "FreeCanFocus": "0", 
         "FreeLabelRight": "Free", "Free": "0", 
         "FreeOnChange": ["",
            "Grid.Cols.G.GanttAvailability = (Row.Avail?\",N#3\":\"\") + (Row.Use?\",N#1\":\"\") + (Row.Use&&Row.Avail?\",N#8\":\"\") + (Row.Free?\",N#5\":\"\") + (Row.Err?\",N#6\":\"\");",
            "if(!Row.Use&&!Row.Avail&&!Row.Err) { ",
               "var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();",
               "for(var i=0;i<F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); ",
               "Grid.EndUpdate();",
               "}",
            "else Grid.RefreshGantt();",
            ""], 
         "ErrType": "Bool", "ErrNoColor": "1", "ErrCanEdit": "1", "ErrCanFocus": "0", "ErrLeft": "2", 
         "ErrLabelRight": "Errors", "Err": "0", 
         "ErrOnChange": ["",
            "Grid.Cols.G.GanttAvailability = (Row.Avail?\",N#3\":\"\") + (Row.Use?\",N#1\":\"\") + (Row.Use&&Row.Avail?\",N#8\":\"\") + (Row.Free?\",N#5\":\"\") + (Row.Err?\",N#6\":\"\");",
            "if(!Row.Use&&!Row.Avail&&!Row.Free) { ",
               "var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();",
               "for(var i=0;i<F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); ",
               "Grid.EndUpdate();",
               "}",
            "else Grid.RefreshGantt();",
            ""], 

      "SepRelWidth": "1", "SepType": "Html", 
      "FormulaLabel": "Total price", 
      "FormulaFormula": "NumberToString(Math.round((sum('C')+ganttresourcesextra())*10)/10,'0.00') + ' USD'"  
       }  
   ], 

   // Side pagers showing Gantt zoom dates 
   "Pagers" : [ 
      { "Name": "Month", "Caption": "Month", "Type": "Gantt", "PageSize": "M", "ChartSize": "y", "Left": "1", "Format": "MMM", "Width": "60", "ZoomToPage": "5"   }  
   ], 
   
   // Column captions 
   "Header" : { "id": "ID", "N": "Name", "T": "Type", "U": "Unit price", "A": "Availability", "P": "Peak", "S": "Total units", "C": "Price", "GNoColor": "0"   }, 
   "Header_2" : { "SortIcons": "2"   },  // Hides unused sort icons    
}) /* End of JSONP header */ 